The present invention relates to a distributed data processing system, and to a method of operating a distributed data processing system.
Providers of data processing services often operate data centres which receive job requests from client computers via the World Wide Web and carry out some data processing in response to those requests, often returning the results of that processing to the requesting client computer.
Such data centres offer data processing services on behalf of many enterprises, such as retailers who use the data centre to offer an on-line shopping service to their customers in turn. The agreements between data centre operators and such enterprises often include expected service levels and provide for the data centre operator to pay a penalty to the enterprise in the event that the data centre fails to provide the agreed level of service.
This is a particular problem since the rate at which requests arrive from customers of an enterprise varies greatly and in an unpredictable way. The conventional solution to this problem is to over-engineer the data centre, which leads to the data centre being under-used most of the time.
European Patent application 1 612 674 discloses that access requests to an information processing system might be rejected or accepted in dependence upon the use of which of several available applications the information processing system is being requested to offer—in particular, the decision whether to admit the access request might depend on whether the requested application in question is overloaded. The decision whether to reject or accept the request might further depend on which client is making the request.
According to the present invention, there is provided a computer network comprising a client computer, a service provisioning system comprising a job admission controller and one or more server computers, and communication links connecting said client computer and service provisioning system;
said client computer being arranged in operation to:
i) generate a job bundle request message representing a request for said one or more server computers to carry out a plurality of instances of a data processing job;
ii) send said job bundle request message to said one or more server computers;
said job admission controller being arranged in operation to:
i) receive said job bundle request message;
ii) determine whether said service provisioning system is to provide said bundle of jobs;
iii) indicate said determination to said client computer;
said client computer further being arranged in operation to:
iv) on finding said indication to indicate that said bundle is accepted, send job requests belonging to said bundle to said service provisioning system;
said one or more server computers being arranged in operation to receive job requests in said bundle and to perform the jobs requested therein.
By aggregating a plurality of requests to perform a data processing job, into a single request to perform a bundle of data processing jobs, and, responding to said single request by carrying out a bundle admission test, the computational load associated with admission control is reduced. The significant benefits of admission control are kept—namely the increased predictability in the load placed on the one or more server computers, and hence the ability to run the one or more server computers at a higher utilisation level without introducing an unacceptable risk of detrimentally affecting jobs which are already running.
An advantage over admission control applied to individual jobs is that a user knows that once a bundle of jobs is accepted each job in that bundle is carried out. Where admission control is applied to individual jobs the user cannot know which jobs will be performed and which will not.
It is to be noted that jobs are independent of one another—they are self-contained tasks—in other words the output of one data processing job is not used as the input to another.